<?php

namespace app\admin\model;

use think\Model;

/**
 * 官方工作人员
 * Class OfficialStaff
 * @package app\admin\model
 */
class OfficialStaff extends Model
{
    # 设置当前模型对应的完整数据表名称
    protected $name = 'resource_official_staff';

    /**
     * 官方指定工作人员
     * @param int $types
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public static function getOfficialStaff($types = 1)
    {
        $data = self::where('status', 1)->whereFindInSet('types', $types)->select();

        return $data ? $data->toArray() : [];
    }

    /**
     * 官方工作人员字段值
     * @param $where
     * @param $field
     * @return mixed
     */
    public static function findOfficialStaffValue($where, $field = 'name')
    {
        return self::where($where)->value($field);
    }

    /**
     * 官方所有工作人员
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public static function getAllOfficialStaff()
    {
        $data = self::where('status', 1)->select();

        return $data ? $data->toArray() : [];
    }

    /**
     * 官方所有工作人员和所属角色
     * @return array
     */
    public static function getAllOfficialStaffAndRole()
    {
        $data = self::alias('s')
            ->join('user u','u.manager = s.id','left')
            ->join('role r','r.id = u.role','left')
            ->field('s.*,r.name as role_name')
            ->select();

        return $data ? $data->toArray() : [];
    }

    /**
     * 指定工作人员
     * @param $where
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public static function findOfficialStaff($where)
    {
        $info = self::where($where)->find();

        return $info ? $info->toArray() : [];
    }

}